/**
 * @addtogroup brd_analog_def
 * brd_analog_def
 * @{
 */
/**
 * @file brd_analog_def.h
 * @brief 板级层模拟量定义
 * @note
 * @par 修改日志
 * <table>
 * <tr><th>Date <th>Version <th>Author <th>Description
 * <tr><td>2020-10-20 <td>1.0 <td>软件工程院 <td>创建初始版本
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */
#ifndef _BRD_AXIS_DEF_H_
#define _BRD_AXIS_DEF_H_

#ifdef __cplusplus
extern "C" {
#endif

/// 轴传感器类型
enum Brd_TAxisIdTag
{
    kBrd_AxisIdBase                         = 0,
    kBrd_AxisIdLsm6dsl                      = kBrd_AxisIdBase,          ///< 6轴传感器: 3轴陀螺仪+3轴加速度计
    kBrd_AxisIdMax,
};
typedef enum Brd_TAxisIdTag Brd_TAxisId;

#define BRD_AXIS_ID_LSM6DSL

/// FIFO模式
enum Brd_TAxisFifoModeTag
{
    kBrd_AxisLsm6dslFifoModeBase = 0,
    kBrd_AxisLsm6dslFifoModeBypass = kBrd_AxisLsm6dslFifoModeBase,  ///< 默认模式
    kBrd_AxisLsm6dslFifoModeFifo = 1,  ///< FIFO模式
    kBrd_AxisLsm6dslFifoModeContinuous = 6,  ///< FIFO自动模式
    kBrd_AxisLsm6dslFifoModeMax,
};
typedef enum Brd_TAxisFifoModeTag Brd_TAxisFifoMode;

#define BRD_AXIS_LSM6DSL_FIFO_MODE_BYPASS
#define BRD_AXIS_LSM6DSL_FIFO_MODE_FIFO
#define BRD_AXIS_LSM6DSL_FIFO_MODE_CONTINUOUS

/// LSM6DSL传感器陀螺仪量程
enum Brd_TAxisLsm6dslGyroRangeTag
{
    kBrd_AxisLsm6dslGyroRange245dps         = 0x00,                     ///< ±245gps
    kBrd_AxisLsm6dslGyroRange500dps         = 0x01,                     ///< ±500gps
    kBrd_AxisLsm6dslGyroRange1000dps        = 0x02,                     ///< ±1000gps
    kBrd_AxisLsm6dslGyroRange2000dps        = 0x03,                     ///< ±2000gps
    kBrd_AxisLsm6dslGyroRangeMax,
};
typedef enum Brd_TAxisLsm6dslGyroRangeTag Brd_TAxisLsm6dslGyroRange;

#define BRD_AXIS_LSM6DSL_GYRO_RANGE_245_DPS
#define BRD_AXIS_LSM6DSL_GYRO_RANGE_500_DPS
#define BRD_AXIS_LSM6DSL_GYRO_RANGE_1000_DPS
#define BRD_AXIS_LSM6DSL_GYRO_RANGE_2000_DPS

/// LSM6DSL传感器加速度计量程
enum Brd_TAxisLsm6dslAcceRangeTag
{
    kBrd_AxisLsm6dslAcceRange2g             = 0x00,                     ///< ±2g
    kBrd_AxisLsm6dslAcceRange16g            = 0x01,                     ///< ±16g
    kBrd_AxisLsm6dslAcceRange4g             = 0x02,                     ///< ±4g
    kBrd_AxisLsm6dslAcceRange8g             = 0x03,                     ///< ±8g
    kBrd_AxisLsm6dslAcceRangeMax,
};
typedef enum Brd_TAxisLsm6dslAcceRangeTag Brd_TAxisLsm6dslAcceRange;

#define BRD_AXIS_LSM6DSL_ACCE_RANGE_2G
#define BRD_AXIS_LSM6DSL_ACCE_RANGE_16G
#define BRD_AXIS_LSM6DSL_ACCE_RANGE_4G
#define BRD_AXIS_LSM6DSL_ACCE_RANGE_8G

/// LSM6DSL传感器输出数据频率
enum Brd_TAxisLsm6dslFreqTag
{
    kBrd_AxisFreq0Hz                        = 0x00,                     ///< 关机状态
    kBrd_AxisFreq13Hz                       = 0x01,                     ///< 13Hz
    kBrd_AxisFreq26Hz                       = 0x02,                     ///< 26Hz
    kBrd_AxisFreq52Hz                       = 0x03,                     ///< 52Hz
    kBrd_AxisFreq104Hz                      = 0x04,                     ///< 104Hz
    kBrd_AxisFreq208Hz                      = 0x05,                     ///< 208Hz
    kBrd_AxisFreq416Hz                      = 0x06,                     ///< 416Hz
    kBrd_AxisFreq833Hz                      = 0x07,                     ///< 833Hz
    kBrd_AxisFreq1660Hz                     = 0x08,                     ///< 1660Hz
    kBrd_AxisFreqMax,
};
typedef enum Brd_TAxisLsm6dslFreqTag Brd_TAxisLsm6dslFreq;

#define BRD_AXIS_FREQ_0HZ
#define BRD_AXIS_FREQ_13HZ
#define BRD_AXIS_FREQ_26HZ
#define BRD_AXIS_FREQ_52HZ
#define BRD_AXIS_FREQ_104HZ
#define BRD_AXIS_FREQ_208HZ
#define BRD_AXIS_FREQ_416HZ
#define BRD_AXIS_FREQ_833HZ
#define BRD_AXIS_FREQ_1660HZ

#ifdef __cplusplus
}  ///  < extern "C"
#endif

#endif // _BRD_AXIS_DEF_H_
/**
 * @} 
 */
